#ifndef LRCPAGE_H
#define LRCPAGE_H

#include <QWidget>
#include <QPropertyAnimation>

namespace Ui {
class LrcPage;
}

//////////////////////////////////////
//LRC行歌词的结构体/////////////////////
/////////////////////////////////////

struct LrcLine
{
    qint64 lrcTime; //歌词所对应的时间
    QString lrcText;//记录一行的歌词
    LrcLine(qint64& time,QString& text) //构造函数
    {
        lrcTime=time;
        lrcText=text;
    }
};

//////////////////////////////////////
//音乐歌词显示界面//////////////////////
/////////////////////////////////////

class LrcPage : public QWidget
{
    Q_OBJECT

public:
    explicit LrcPage(QWidget *parent = nullptr);
    ~LrcPage();
    //解析Lrc文件
    bool parseLrc(QString lrcPath);
    //根据当前时间获取对应歌词在LrcLines中的索引
    int getLineLrcWordIndex(qint64 pos);
    //更据当前索引获取对应行的歌词
    QString getLineLrcWord(int index);
    //根据时间更新歌词页面的显示
    void ShowLineLrcWord(int time);
    //设置歌词页面中显示当前音乐的名称
    void ShowLrcMusicName(QString name);
    //设置歌词页面中显示当前音乐的歌手名称
    void ShowLrcMusicSinger(QString singer);

private:
    Ui::LrcPage *ui;
    QPropertyAnimation* lrcAnimation;//表示歌词页面的下移动画(记录歌词页面下移动画)
    QVector<LrcLine> lrcLines;//用于记录歌曲文件对应的歌词(按行记录,记录每一行的歌词以及每行歌词对应的时间)
};

#endif // LRCPAGE_H
